package top.yoahh.security.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import top.yoahh.utils.MD5Util;

/**
 * 加密工具类
 */
@Slf4j
@Component
public class PasswordEncoderConfig implements PasswordEncoder {

    /**
     * 加密
     *
     * @param charSequence 需要加密的密码
     * @return 加密完成的密码
     */
    @Override
    public String encode(CharSequence charSequence) {
        log.info("正在进行加密，加密密码：{}",charSequence.toString());
        return MD5Util.encode(charSequence.toString());
    }

    /**
     * 解码
     *
     * @param charSequence 传进来的原始密码
     * @param s            数据库中存的加密后的密文
     * @return 比对结果
     */
    @Override
    public boolean matches(CharSequence charSequence, String s) {
        boolean equals = s.equals(MD5Util.encode(charSequence.toString()));
        log.info("前端输入的密码：{}，数据库中的密码：{}",charSequence.toString(),s);
        log.info("进行密码比对，比对结果：{}", equals);
        return equals;
    }
}
